package com.spzx.product.service.Impl;

import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.spzx.common.core.utils.StringUtils;
import com.spzx.common.core.web.page.PageDomain;
import com.spzx.common.core.web.page.TableSupport;
import com.spzx.product.domain.Brand;
import com.spzx.product.domain.ProductUnit;
import com.spzx.product.mapper.ProductUnitMapper;
import com.spzx.product.service.ProductUnitService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

@Service
public class ProductUnitServiceImpl extends ServiceImpl<ProductUnitMapper, ProductUnit>
        implements ProductUnitService {
    @Autowired
   private ProductUnitMapper productUnitMapper;
    @Override
    public Page<ProductUnit> selectProductUnitPage(ProductUnit productUnit) {
        //1.封装分页条件：页码，记录条数
        //1.1 调用ry的工具类 从请求参数列表中 获取分页条件
        PageDomain pageDomain = TableSupport.buildPageRequest();
        Page<ProductUnit> page = new Page<>(pageDomain.getPageNum(),pageDomain.getPageSize());
        //封装查询条件的queryWrapper对象
        LambdaQueryWrapper<ProductUnit> lambdaQuery = Wrappers.lambdaQuery(ProductUnit.class);
        if (StringUtils.isNotEmpty(productUnit.getName())){
            lambdaQuery.like(ProductUnit::getName,productUnit.getName());
        }
        //获取父类自动装配的ProductUnitMapper对象,调用分页查询方法传入分页和过滤条件
        baseMapper.selectPage(page,lambdaQuery);
        //返回分页数据
        return page;
    }

    @Override
    public ProductUnit selectProductUnitById(Long id) {
       return productUnitMapper.selectProductUnitById(id);

    }

    @Override
    public int insertProductUnit(ProductUnit productUnit) {
        return productUnitMapper.insertProductUnit(productUnit);
    }

    @Override
    public int updateProductUnit(ProductUnit productUnit) {
        return productUnitMapper.updateProductUnit(productUnit);
    }

    @Override
    public int deleteProductUnitByIds(Long[] ids) {
        return productUnitMapper.deleteProductUnitByIds(ids);
    }
}
